hysop.operator.directional.advection_dir module

@file advection_dir.py Directional advection frontends (operator generator).

class hysop.operator.directional.advection_dir.DirectionalAdvection(velocity, advected_fields, variables, dt, advected_fields_out=None, relative_velocity=None, implementation=None, base_kwds=None, **kwds)[source]

Bases: DirectionalOperatorFrontend

Interface for particle advection and remeshing method of a list of fields in a given direction.

Available implementations are:

*Python *OpenCL

Initialize a DirectionalAdvectionFrontend.

Parameters:
  • velocity (Field) – continuous velocity field (all components)

  • advected_fields (Field or array like of Fields) – instance or list of continuous fields to be advected.

  • advected_fields_out (Field or array like of Field, optional, defaults to None) – advection output, if set to None, advection is done inplace on a per variable basis.

  • relative_velocity (array_like of constants representing relative velocity, optional) – Relative velocity that has to be taken into account. Vi = Ui - Urel[i] for each components.

  • variables (dict) – Dictionary of continuous fields as keys and topologies as values.

  • dt (ScalarParameter) – Timestep parameter that will be used for time integration.

  • implementation (implementation, optional, defaults to None) – target implementation, should be contained in available_implementations(). If None, implementation will be set to default_implementation().

  • base_kwds (dict, optional, defaults to None) – Base class keywords arguments. If None, an empty dict will be passed.

  • kwds – Extra parameters passed to generated directional operators.

Notes

An implementation should at least support the following __init__ parameters:

velocity, advected_fields, advected_fields_out, variables direction, splitting_dim

Extra keywords parameters are passed through kwds.

classmethod default_implementation()[source]

Return the default Implementation, should be compatible with available_implementations.

classmethod implementations()[source]

Should return all implementations as a dictionnary. Keys are Implementation instances and values are either ComputationalGraphNode or ComputationalGraphNodeGenerator.